package br.com.rafael.gestorinvestimentos.DAO;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.rafael.gestorinvestimentos.model.Acao;
import br.com.rafael.gestorinvestimentos.model.AtivoFinanceiro;

public class AtivoFinanceiroDAO{
	private Session session;
	
	public AtivoFinanceiroDAO(Session session){
		this.session = session;
	}	
	
	public void insert (AtivoFinanceiro ativoFinanceiro){
		this.session.save(ativoFinanceiro);
	}
	
	public void update (AtivoFinanceiro ativoFinanceiro){
		this.session.merge(ativoFinanceiro);
	}
	
	public void delete (AtivoFinanceiro ativoFinanceiro){
		this.session.delete(ativoFinanceiro);
	}
	
	public AtivoFinanceiro getAtivoFinanceiro (int id){
		return (AtivoFinanceiro) session.load(AtivoFinanceiro.class, id);	
	}
	
	public AtivoFinanceiro getAtivoFinanceiro (String ticker){
		Query q = this.session.createQuery("from AtivoFinanceiro as ativoFinanceiro where ativoFinanceiro.ticker = :ativoFinanceiroTicker").setParameter("ativoFinanceiroTicker", ticker);
		return (AtivoFinanceiro) q.uniqueResult();
	}
	
	public AtivoFinanceiro getAtivoFinanceiroNome (String nome){
		Query q = this.session.createQuery("from AtivoFinanceiro as ativoFinanceiro where ativoFinanceiro.nome = :ativoFinanceiroNome").setParameter("ativoFinanceiroNome", nome);
		return (Acao) q.uniqueResult();
	}
		
	public List getList (){
		return this.session.createCriteria(AtivoFinanceiro.class).list();
	}


}
